import { createStore } from 'vuex'
import user from './user.js'
import cart from './cart.js'
import cate from './cate.js'
import global from './global.js'
import createPersistedstate from 'vuex-persistedstate'

// state 用于统一存储组件的撒胡椒
// mutations 必须通过mutation进行状态的修改
// actions 如果是异步的场景，需要用action就行处理
// getters 类似于之前的计算属性，基于state中的数据生成另一份数据
// modules 把vuex进行模块化拆分
export default createStore({
  // 全局模块
  ...global,
  // 局部模块
  modules: {
    user,
    cart,
    cate
  },
  // vuex支持插件
  plugins: [
    createPersistedstate({
      // 设置缓存中数据的key
      key: 'erabbit-client-pc-store',
      // 设置哪些数据需要进行缓存
      paths: ['user', 'cart']
    })
  ]
})
